package practise01

/** *
  * 套路1:自定义apply
  * 在函数调用的时候使用 对象名加个括号，等于调用个该对象的apply方法
  * 而且在一些数据类型中，同样也有该语法糖，例如集合，调用集合名加个括号，也相当于调用apply方法
  */
class applyOne {

  val a = 1

  def hello(s: String) = s"$s,$a"

  def apply() = a

  def apply(s: String) = s"$s,有参数构造方法"


}

object applyOne {

  def main(args: Array[String]): Unit = {
    val t1 = new applyOne
    println(t1) //practise01.applyTest@4ec6a292
    println(t1()) //1  加括号等价于构造方法
    println(t1("111")) //111,有参数构造方法  加括号等价于构造方法
  }
}